Update to TG 2.5.0-develop.55 (do not merge) - #4
Conversation
…416). Ports every example off the legacy ConfigurationManager API removed by tui-cs/Terminal.Gui#5416 and onto the 2.5 MEC-based model: - Remove ConfigurationManager.Enable (ConfigLocations.All) everywhere — configuration is applied automatically at assembly load in 2.5. - Example: RuntimeConfig theme override now uses TuiConfigurationBuilder.Shared.RuntimeConfig + ApplyToStaticFacades. - ReactiveExample: the ObservableEvents source generator cannot wrap 2.5's TextField (it hides View.TextChanging with a different delegate type); subscribe to TextField.TextChanged via Observable.FromEventPattern instead. - Migrate Config/*.json and Themes/code-dark.config.json to the nested MEC shape (dotted keys and Themes/Schemes arrays no longer apply). Key bindings stay supported via nested Application:DefaultKeyBindings, View:DefaultKeyBindings, and View:ViewKeyBindings with per-command overlay. - Drop the removed ConfigurationManager.ThrowOnJsonErrors key and fix a mojibake check-mark glyph in example_config.json. - Port FSharpExample to the v2 API (v2 namespaces, IApplication model, F# 9 nullness) and add it to the solution. - Rewrite the CommunityToolkit/Reactive/SelfContained/Config READMEs (updated snippets; the old files had no line endings and mojibake). - Bump Terminal.Gui to 2.5.0-develop.* (floats once 2.5 dev packages publish after tui-cs/Terminal.Gui#5416 merges). Verified against a locally packed 2.5.0-develop.1 from the #5416 branch: solution + FSharpExample build with 0 warnings/0 errors, and all 9 smoke tests pass. dotnet format verify reports only the 46 violations already present on main under SDK 10.0.400. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NGq38GbuZPAEa5wZHkmPiZ
…ys, F# smoke test. - Config/macos.json and windows.json: trim to only the commands they actually change (2.5's per-command overlay keeps defaults for omitted commands); drop windows.json's Quit row (it restated the compile-time default). - Config/README.md: correct the default-binding tables against the 2.5 source (Quit is Esc on all platforms; DeleteCharRight includes Ctrl+D by default), and document that a binding cannot be removed via config — windows.json cannot disable Suspend; use Application.RemoveDefaultKeyBinding in code. - Examples.sln: revert the auto-generated x64/x86 platform churn (~120 lines); add FSharpExample and the previously missing Examples.SmokeTests rows as plain Any CPU entries, so solution builds stop silently skipping the tests. - SelfContained/README.md: snippet now matches the code (Accepted event, and the AppModel.Inline line the example exists to demonstrate). - ReactiveExample/README.md: scope the .Events () caveat correctly (works for other views, never for TextField) and show the IValue ValueChanged binding. - ReactiveExample/LoginView.cs: replace the two duplicated FromEventPattern pipelines with one ObserveText helper over IValue<string>.ValueChanged. - FSharpExample: add a --smoke-test mode and cover it in Examples.SmokeTests (now 10 tests, all passing); fix a space-before-parens miss. The 2.5.0-develop.* floating version is intentionally left as the merge gate until Terminal.Gui#5416 publishes packages. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NGq38GbuZPAEa5wZHkmPiZ
Replace the floating 2.5.0-develop.* placeholder with the published nuget.org package so restore no longer depends on an unpublished 5416 feed. Co-authored-by: Tig <tig@users.noreply.github.com>
|
DO NOT MERGE: this PR still pins the public nuget.org pre-release
I retargeted the pin from floating |
CI runs jb cleanupcode and diffs the tree. ObserveText is now a block body and sits after the IViewFor.ViewModel explicit implementation. Co-authored-by: Tig <tig@users.noreply.github.com>
|
DO NOT MERGE: this PR still pins the public nuget.org pre-release
Local verification on
There is no |
This PR pins public
Terminal.Gui 2.5.0-develop.55from nuget.org so the examples can be validated ahead of the v2.5.0 tag. Before merging, once stable 2.5.x is on nuget.org:Directory.Packages.propsto the public stable 2.5.x versionDo not leave a floating
2.5.0-develop.*pin. Restore already works from nuget.org.Summary
Retargets this PR from a floating unpublished
2.5.0-develop.*pin to public2.5.0-develop.55as part of tui-cs/Terminal.Gui#5630 Workstream 4.Kept from the original 2.5 port:
ConfigurationManager.Enableremoved; auto-load at assembly loadExampletheme override viaTuiConfigurationBuilder.Shared.RuntimeConfigReactiveExampleTextField.TextChangedviaObservable.FromEventPattern(source generator cannot wrap 2.5TextField)Validation
CI on this head: Ubuntu/macOS/Windows build-and-test green.
Refs: tui-cs/Terminal.Gui#5416, tui-cs/Terminal.Gui#5630.